/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.edu.utfpr.controlador;

import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import static br.com.caelum.vraptor.view.Results.*;
import br.edu.utfpr.bean.Poltrona;
import br.edu.utfpr.dao.DaoPoltrona;
import br.edu.utfpr.dao.DaoVoo;
import java.util.List;
//import static br.com.caelum.vraptor.Result;
/**
 *
 * @author guardezi
 */
@Resource
public class PoltronaController {
    private final Result result;
    private final DaoPoltrona daoPoltrona;
    
    
    public PoltronaController(Result result, DaoPoltrona daoPoltrona) {
        this.result = result;
        this.daoPoltrona = daoPoltrona;
    }
    
    @Path("/listapoltronas/{codVoo}")
    public List<Poltrona> listapoltronas(Long codVoo){
        result.include("pref",""+codVoo);
        result.include("poltronasList",daoPoltrona.listarPoltronas(codVoo));
        return daoPoltrona.listarPoltronas(codVoo);
    
        
    }
    
    @Path("/listapoltronascompradas/{codVoo}")
    public List<Poltrona> listapoltronascompradas(Long codVoo){
        result.include("pref",""+codVoo);
        result.include("poltronasList",daoPoltrona.listarPoltronasCompradas(codVoo));
        return daoPoltrona.listarPoltronasCompradas(codVoo); 
    }
    
    @Path("/listapoltronasconfirmadas/{codVoo}")
    public List<Poltrona> listapoltronasconfirmadas(Long codVoo){
        result.include("pref",""+codVoo);
        result.include("poltronasList",daoPoltrona.listarPoltronasConfirmadas(codVoo));
        return daoPoltrona.listarPoltronasConfirmadas(codVoo); 
    }
    
    @Get
    @Path("/confirmarchekin")
    public void confirmarCheckin(Long poltrona, Long voo){
        System.out.println("\nPoltrona: "+poltrona+"\nVoo: "+voo);
        daoPoltrona.confirmarchekin(poltrona);
        
        result.forwardTo(this).listapoltronasconfirmadas(voo);
      
        
    }
    
    @Get
    @Path("/poltronaslisvre/{id}/poltronas.xml")
    public void poltronasLivreXML(Long id){
        
        List<Poltrona> poltronas = daoPoltrona.listarPoltronasLivres(id);
        result.use(xml()).from(poltronas).serialize();
    }
    
    @Get
    @Path("/poltronasocupadas/{id}/poltronas.xml")
    public void poltronasOcupadasXML(Long id){
        
        List<Poltrona> poltronas = daoPoltrona.listarPoltronasConfirmadas(id);
        result.use(xml()).from(poltronas).serialize();
    }
    
    @Get
    @Path("/comprarPoltrona")
    public void comprarPoltrona(Long poltrona, Long cpf,Long voo){
        System.out.println("Cliente: "+cpf +"\nPoltrona: "+poltrona+"\nVoo: "+voo);
        daoPoltrona.compraPoltrona(cpf, poltrona);
        result.forwardTo(this).listapoltronas(voo);
    }
    
    
}